<?php
namespace Common\Tool;

class Check
{
    /**
     * 是否为Email
     *
     * @param    string    $string
     * @return   bool
     */
    public static function isEmail($string){
        //return preg_match('/^[a-z’0-9]+([._-][a-z’0-9]+)*@([a-z0-9]+([._-][a-z0-9]+))+$/', $string);
        return filter_var($string, FILTER_VALIDATE_EMAIL);
    }

    /**
     * 是否为手机号码
     *
     * @param    string    $string
     * @return   bool
     */
    public static function isMobile($string){
        return preg_match('/^1[345678]+\d{9}$/', $string);
    }

    /**
     * 是否为电话号码
     *
     * @param    string    $string
     * @return   bool
     */
    public static function isTel($string){
        return preg_match('/^((0\d{2,3})-)?(\d{7,8})(-(\d{3,}))?$/', $string);
    }

    /**
     * 是否为QQ号码
     *
     * @param    string    $string
     * @return   bool
     */
    public static function isQq($string){
        return preg_match('/^\d{4,}$/', $string);
    }

    /**
     * 是否为邮政编码号码
     *
     * @param    string    $string
     * @return   bool
     */
    public static function isZip($string){
        return preg_match('/^\d{6}$/', $string);
    }

    /**
     * 是否为传真号码
     *
     * @param    string    $string
     * @return   bool
     */
    public static function isFax($string){
        return preg_match('/^((0\d{2,3})-)?(\d{7,8})(-(\d{3,}))?$/', $string);
    }


    /**
     * 检查id是否存在于数组中
     *
     * @param $id
     * @param $ids
     * @param $s
     * @return boolean
     */
    public static function check_in($id, $ids = '', $s = ','){
        if(!$ids) return false;
        $ids = explode($s, $ids);
        return is_array($id) ? array_intersect($id, $ids) : in_array($id, $ids);
    }


    /**
     * 验证身份证号码
     * @param string $value
     * @param string $match
     * @return boolean
     */
    public static function isIDCard($value,$match='/^\d{6}((1[89])|(2\d))\d{2}((0\d)|(1[0-2]))((3[01])|([0-2]\d))\d{3}(\d|X)$/i'){
        $v = trim($value);
        if(empty($v))
            return false;
        else if(strlen($v)>18)
            return false;
        return preg_match($match,$v);
    }

    /**
     * *
     * 验证URL
     * @param string $value
     * @param string $match
     * @return boolean
     */
    public static function isURL($value,$match='/^(http:\/\/)?(https:\/\/)?([\w\d-]+\.)+[\w-]+(\/[\d\w-.\/?%&=]*)?$/'){
        $v = strtolower(trim($value));
        if(empty($v))
            return false;
        return preg_match($match,$v);
    }
}